package org.edu.modules.jxrw.entity;

import java.io.Serializable;
import java.math.BigDecimal;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.edu.modules.jxgz.entity.VeJwSkjh;
import org.edu.modules.jxrw.config.ConfigConstant;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.edu.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: ve_jw_jxrw
 * @Author: jeecg-boot
 * @Date: 2021-05-07
 * @Version: V1.0
 */
@Data
@TableName("ve_jw_jxrw")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "ve_jw_jxrw对象", description = "ve_jw_jxrw")
public class VeJwJxrw implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 自增长主键ID
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "自增长主键ID")
    private Integer id;
    /**
     * 教学任务名称
     */
    @Excel(name = "教学任务名称", width = 15)
    @ApiModelProperty(value = "教学任务名称")
    private String name;
    /**
     * 教学计划ID
     */
    @Excel(name = "教学计划ID", width = 15)
    @ApiModelProperty(value = "教学计划ID")
    private Integer jxjhid;
    /**
     * 院系ID
     */
    @Excel(name = "院系ID", width = 15)
    @ApiModelProperty(value = "院系ID")
    private Integer falid;
    /**
     * 专业ID
     */
    @Excel(name = "专业ID", width = 15)
    @ApiModelProperty(value = "专业ID")
    private Integer specid;
    /**
     * 年级ID
     */
    @Excel(name = "年级ID", width = 15)
    @ApiModelProperty(value = "年级ID")
    private Integer gradeid;
    /**
     * 执行学期ID
     */
    @Excel(name = "执行学期ID", width = 15)
    @ApiModelProperty(value = "执行学期ID")
    //@Dict(dictTable = "ve_jw_kecheng", dicCode = "id", dicText = "KCMC")
    private Integer semid;
    /**
     * 学制ID（根据课程、学期，确定教学计划明细，获取学制ID）
     */
    @Excel(name = "学制ID（根据课程、学期，确定教学计划明细，获取学制ID）", width = 15)
    @ApiModelProperty(value = "学制ID（根据课程、学期，确定教学计划明细，获取学制ID）")
    private Integer xzid;
    /**
     * 课程ID
     */
    @Excel(name = "课程ID", width = 15)
    @ApiModelProperty(value = "课程ID")
    @Dict(dictTable = "ve_jw_kecheng", dicCode = "id", dicText = "KCMC")
    private Integer kcid;
    /**
     * 课程名称
     */
//    @Excel(name = "课程名称", width = 15)
    @TableField(exist = false)
    @ApiModelProperty(value = "课程名称")
    private String kcmc;
    /**
     * 教研组ID
     */
    @Excel(name = "教研组ID", width = 15)
    @ApiModelProperty(value = "教研组ID")
    private Integer jyzid;
    /**
     * 考试形式ID（从数据字典中获取考试形式的值 1=考试，2=考查）
     */
    @Excel(name = "考试形式ID（从数据字典中获取考试形式的值 1=考试，2=考查）", width = 15)
    @ApiModelProperty(value = "考试形式ID（从数据字典中获取考试形式的值 1=考试，2=考查）")
    private Integer ksxsid;
    /**
     * 选课人数
     */
    @Excel(name = "选课人数", width = 15)
    @ApiModelProperty(value = "选课人数")
    private Integer xkrs;
    /**
     * 是否核心课程：0=否，1=是
     */
    @Excel(name = "是否核心课程：0=否，1=是", width = 15)
    @ApiModelProperty(value = "是否核心课程：0=否，1=是")
    private Integer sfhxkc;
    /**
     * 课程分类码
     */
    @Excel(name = "课程分类码", width = 15)
    @ApiModelProperty(value = "课程分类码")
    @Dict(dicCode = "course_type")
    private String kcflm;
    /**
     * 课程属性码
     */
    @Excel(name = "课程属性码", width = 15)
    @ApiModelProperty(value = "课程属性码")
    private String kcsxm;
    /**
     * 课程性质：数据字典ID（专业课=3，学科基础课=2，公共基础课=1）
     */
    @Excel(name = "课程性质：数据字典ID（专业课=3，学科基础课=2，公共基础课=1）", width = 15)
    @ApiModelProperty(value = "课程性质：数据字典ID（专业课=3，学科基础课=2，公共基础课=1）")
    @Dict(dicCode = "course_type")
    private Integer kcxz;
    /**
     * 课程学分
     */
    @Excel(name = "课程学分", width = 15)
    @ApiModelProperty(value = "课程学分")
    private BigDecimal kcxf;
    /**
     * 总学时
     */
    @Excel(name = "总学时", width = 15)
    @ApiModelProperty(value = "总学时")
    private Integer zxs;
    /**
     * 创建人ID
     */
    @Excel(name = "创建人ID", width = 15)
    @ApiModelProperty(value = "创建人ID")
    private Integer createuserid;
    /**
     * 创建时间
     */
    @Excel(name = "创建时间", width = 15)
    @ApiModelProperty(value = "创建时间")
    private Integer createtime;
    /**
     * 教师的用户ID
     */
    @Excel(name = "教师的用户ID", width = 15)
    @ApiModelProperty(value = "教师的用户ID")
    private String teacheruserid;
    /**
     * 教师的用户姓名
     */
    @Excel(name = "教师的用户姓名", width = 15)
    @ApiModelProperty(value = "教师的用户姓名")
    private String teachername;
    /**
     * 是否合班教学（0=否，1=是）
     */
    @Excel(name = "是否合班教学（0=否，1=是）", width = 15)
    @ApiModelProperty(value = "是否合班教学（0=否，1=是）")
    private Integer ismergedclass;
    /**
     * 行政班IDs，多个id以 , 隔开
     */
    @Excel(name = "行政班IDs，多个id以 , 隔开", width = 15)
    @ApiModelProperty(value = "行政班IDs，多个id以 , 隔开")
    private String xzbids;
    /**
     * 教学任务类型 0：必修课 1：选修课
     */
    @Excel(name = "教学任务类型 0：必修课 1：选修课", width = 15)
    @ApiModelProperty(value = "教学任务类型 0：必修课 1：选修课")
    @Dict(dicCode = "jxrw_type")
    private Integer type;
    /**
     * 教学班ID
     */
    @Excel(name = "教学班ID", width = 15)
    @ApiModelProperty(value = "教学班ID")
    //@Dict(dictTable = ConfigConstant.dbName + "ve_jw_jxb", dicCode = "id", dicText = "BJMC")
    private Integer jxbid;
    /**
     * 教室类型Id（场地要求）
     */
    @Excel(name = "教室类型Id（场地要求）", width = 15)
    @ApiModelProperty(value = "教室类型Id（场地要求）")
    private Integer jslxid;
    /**
     * 教材ID
     */
    @Excel(name = "教材ID", width = 15)
    @ApiModelProperty(value = "教材ID")
    @Dict(dictTable = "ve_jw_jiaocai", dicCode = "id", dicText = "JCMC")
    private Integer jcid;
    /**
     * 教室ID（根据当前教学班的）
     */
    @Excel(name = "教室ID（根据当前教学班的）", width = 15)
    @ApiModelProperty(value = "教室ID（根据当前教学班的）")
    @Dict(dictTable = "ve_jw_jiaoshi", dicCode = "id", dicText = "JSMC")
    private Integer jsid;
    /**
     * 是否确认（0=未确认（不通过），1=已确认(通过),2.待审核），为选修课时就是审核状态
     */
    @Excel(name = "是否确认（0=未确认（不通过），1=已确认(通过),2.待审核），为选修课时就是审核状态", width = 15)
    @ApiModelProperty(value = "是否确认（0=未确认（不通过），1=已确认(通过),2.待审核），为选修课时就是审核状态")
    @Dict(dicCode = "jxrw_status")
    private Integer checkstatus;
    /**
     * 确认人Id(为选修课时就是审核人)
     */
    @Excel(name = "确认人Id(为选修课时就是审核人)", width = 15)
    @ApiModelProperty(value = "确认人Id(为选修课时就是审核人)")
    private Integer checkuserid;
    /**
     * 确认时间
     */
    @Excel(name = "确认时间", width = 15)
    @ApiModelProperty(value = "确认时间")
    private Integer checktime;
    /**
     * 不确认的原因 文本ID(为选修课时就是审核不通过原因))
     */
    @Excel(name = "不确认的原因 文本ID(为选修课时就是审核不通过原因))", width = 15)
    @ApiModelProperty(value = "不确认的原因 文本ID(为选修课时就是审核不通过原因))")
    private Integer checktid;
    /**
     * 成绩状态（1=已录入，2=已提交）
     */
    @Excel(name = "成绩状态（1=已录入，2=已提交）", width = 15)
    @ApiModelProperty(value = "成绩状态（1=已录入，2=已提交）")
    @Dict(dicCode = "jxrw_result_type")
    private Integer cjstatus;
    /**
     * 终端ID
     */
    @Excel(name = "终端ID", width = 15)
    @ApiModelProperty(value = "终端ID")
    private Integer terminalid;
    /**
     * 当教师类型普通教师的时候默认一个固定教师
     */
    @Excel(name = "当教师类型普通教师的时候默认一个固定教师", width = 15)
    @ApiModelProperty(value = "当教师类型普通教师的时候默认一个固定教师")
    private Integer fixedjsid;


    /**
     * 是否发布（0=否，1=是）
     */
    @Excel(name = "是否发布（0=否，1=是）", width = 15)
    @ApiModelProperty(value = "是否发布（0=否，1=是）")
    private Integer ispublish;


    /**
     * 周课时
     */
    @Excel(name = "周课时", width = 15)
    @ApiModelProperty(value = "周课时")
    private Integer wtime;


    /**
     * 周课时
     */
    @Excel(name = "删除标识", width = 15)
    @ApiModelProperty(value = "删除标识")
    private Integer delflag;


    @TableField(exist = false)
    private String semester;

    @TableField(exist = false)
    private String classname;

    @TableField(exist = false)
    private String year;

    /**
     * 周节数
     */
    @TableField(exist = false)
    private Integer weeklessonnum;

    /**
     * 总周数
     */
    @TableField(exist = false)
    private Integer weeksum;

    /**
     * 总节数
     */
    @TableField(exist = false)
    private Integer lessonsum;

    /**
     * 授课计划
     */
    @TableField(exist = false)
    private VeJwSkjh skjh;

}
